<!DOCTYPE html>
<!-- saved from url=(0127)https://docs.google.com/document/d/e/2PACX-1vRRGtuzCb4u7GfOPBFKW4xUbpahnsKCudnX69uDQbHnwLPPllwxiJJJup3YdgeUNT90C2dPkkGzDNwP/pub -->
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>WebPerfWG call - May 19th 2020</title><link rel="shortcut icon" href="https://ssl.gstatic.com/docs/documents/images/kix-favicon7.ico"><meta name="referrer" content="strict-origin-when-cross-origin"><style type="text/css" nonce="">
      @import url("https://fonts.googleapis.com/css?family=Google+Sans");
      @import url("https://fonts.googleapis.com/css?family=Roboto");

      body {
        font-family: Roboto, arial, sans, sans-serif;
        margin: 0;
      }

      iframe {
        border: 0;
        frameborder: 0;
        height: 100%;
        width: 100%;
      }

      #header {
        align-items: center;
        background: white;
        border-bottom: 1px #ccc solid;
        display: flex;
        height: 60px;
        justify-content: space-between;
        position: fixed;
        top: 0;
        width: 100%;
        z-index: 100;
      }

      #header #title {
        font-family: 'Google Sans';
        font-size: large;
        margin: auto 0 auto 20px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        width: 70%;
      }

      #header #interval {
        margin: auto 25px auto 0;
        font-family: Roboto;
        font-size: small;;
      }

      #footer {
        background: #f0f0f0;
        border-bottom: 1px #ccc solid;
        bottom: 0;
        font-family: Roboto;
        font-size: small;
        padding: 10px 10px;
        position: fixed;
        text-align: center;
        width: 100%;
      }

      #contents {
        padding: 100px 20% 50px 20%;
      }

      @media only screen and (max-device-width: 800px) {
        #header {
          border-bottom-width: 5px;
          height: auto;
          display: block;
        }

        #header #title {
          font-size: 3em;
          margin: auto 0 auto 20px;
          width: 90%;
        }

        #header #interval {
          font-size: 1.5em;
          margin: 10px 0 auto 25px;
        }

        #contents {
          padding: 150px 5% 80px;
        }

        #footer {
          font-size: 2em;
        }
      }

      .dash {
        padding: 0 6px;
      }
    </style></head><body><div id="header"><div id="title">WebPerfWG call - May 19th 2020</div><div id="interval"><span></span></div></div><div id="contents"><style type="text/css">ul.lst-kix_16q3g1bqf4v8-0{list-style-type:none}ul.lst-kix_16q3g1bqf4v8-4{list-style-type:none}ul.lst-kix_16q3g1bqf4v8-3{list-style-type:none}ul.lst-kix_16q3g1bqf4v8-2{list-style-type:none}ul.lst-kix_16q3g1bqf4v8-1{list-style-type:none}ul.lst-kix_16q3g1bqf4v8-8{list-style-type:none}ul.lst-kix_16q3g1bqf4v8-7{list-style-type:none}ul.lst-kix_16q3g1bqf4v8-6{list-style-type:none}ul.lst-kix_16q3g1bqf4v8-5{list-style-type:none}.lst-kix_kasf0lccdtym-0>li:before{content:"\0025cf  "}.lst-kix_d5fwfbfxeak-0>li:before{content:"\0025cf  "}.lst-kix_d5fwfbfxeak-2>li:before{content:"\0025a0  "}.lst-kix_d5fwfbfxeak-1>li:before{content:"\0025cb  "}.lst-kix_3smi8abknjmk-2>li:before{content:"\0025a0  "}.lst-kix_yt5b62vngjmx-8>li:before{content:"\0025a0  "}.lst-kix_3smi8abknjmk-3>li:before{content:"\0025cf  "}.lst-kix_yt5b62vngjmx-5>li:before{content:"\0025a0  "}.lst-kix_p8mtvtxq35w-6>li:before{content:"\0025cf  "}.lst-kix_yt5b62vngjmx-4>li:before{content:"\0025cb  "}.lst-kix_3smi8abknjmk-0>li:before{content:"\0025cf  "}.lst-kix_p8mtvtxq35w-5>li:before{content:"\0025a0  "}.lst-kix_3smi8abknjmk-1>li:before{content:"\0025cb  "}.lst-kix_kasf0lccdtym-6>li:before{content:"\0025cf  "}.lst-kix_yt5b62vngjmx-3>li:before{content:"\0025cf  "}.lst-kix_p8mtvtxq35w-3>li:before{content:"\0025cf  "}.lst-kix_p8mtvtxq35w-2>li:before{content:"\0025a0  "}.lst-kix_p8mtvtxq35w-4>li:before{content:"\0025cb  "}.lst-kix_kasf0lccdtym-5>li:before{content:"\0025a0  "}.lst-kix_yt5b62vngjmx-0>li:before{content:"\0025cf  "}.lst-kix_yt5b62vngjmx-2>li:before{content:"\0025a0  "}.lst-kix_95y8eww5g0j6-7>li:before{content:"\0025cb  "}.lst-kix_95y8eww5g0j6-6>li:before{content:"\0025cf  "}.lst-kix_kasf0lccdtym-4>li:before{content:"\0025cb  "}.lst-kix_yt5b62vngjmx-1>li:before{content:"\0025cb  "}.lst-kix_p8mtvtxq35w-0>li:before{content:"\0025cf  "}.lst-kix_kasf0lccdtym-1>li:before{content:"\0025cb  "}.lst-kix_kasf0lccdtym-3>li:before{content:"\0025cf  "}.lst-kix_p8mtvtxq35w-1>li:before{content:"\0025cb  "}.lst-kix_95y8eww5g0j6-8>li:before{content:"\0025a0  "}.lst-kix_kasf0lccdtym-2>li:before{content:"\0025a0  "}.lst-kix_95y8eww5g0j6-1>li:before{content:"\0025cb  "}.lst-kix_se6dyoebk8vx-0>li:before{content:"\0025cf  "}.lst-kix_95y8eww5g0j6-3>li:before{content:"\0025cf  "}.lst-kix_se6dyoebk8vx-1>li:before{content:"\0025cb  "}.lst-kix_95y8eww5g0j6-2>li:before{content:"\0025a0  "}.lst-kix_95y8eww5g0j6-5>li:before{content:"\0025a0  "}.lst-kix_92dmlqc6k7hb-8>li:before{content:"\0025a0  "}.lst-kix_se6dyoebk8vx-3>li:before{content:"\0025cf  "}.lst-kix_se6dyoebk8vx-4>li:before{content:"\0025cb  "}.lst-kix_se6dyoebk8vx-2>li:before{content:"\0025a0  "}.lst-kix_95y8eww5g0j6-4>li:before{content:"\0025cb  "}ul.lst-kix_865ut2eu98jc-1{list-style-type:none}.lst-kix_92dmlqc6k7hb-4>li:before{content:"\0025cb  "}ul.lst-kix_865ut2eu98jc-2{list-style-type:none}ul.lst-kix_865ut2eu98jc-3{list-style-type:none}.lst-kix_92dmlqc6k7hb-3>li:before{content:"\0025cf  "}.lst-kix_92dmlqc6k7hb-5>li:before{content:"\0025a0  "}ul.lst-kix_865ut2eu98jc-4{list-style-type:none}.lst-kix_kasf0lccdtym-7>li:before{content:"\0025cb  "}ul.lst-kix_865ut2eu98jc-0{list-style-type:none}.lst-kix_kasf0lccdtym-8>li:before{content:"\0025a0  "}.lst-kix_p8mtvtxq35w-7>li:before{content:"\0025cb  "}.lst-kix_92dmlqc6k7hb-7>li:before{content:"\0025cb  "}.lst-kix_p8mtvtxq35w-8>li:before{content:"\0025a0  "}.lst-kix_yt5b62vngjmx-6>li:before{content:"\0025cf  "}ul.lst-kix_865ut2eu98jc-5{list-style-type:none}.lst-kix_92dmlqc6k7hb-6>li:before{content:"\0025cf  "}ul.lst-kix_865ut2eu98jc-6{list-style-type:none}.lst-kix_95y8eww5g0j6-0>li:before{content:"\0025cf  "}ul.lst-kix_865ut2eu98jc-7{list-style-type:none}ul.lst-kix_865ut2eu98jc-8{list-style-type:none}.lst-kix_yt5b62vngjmx-7>li:before{content:"\0025cb  "}ul.lst-kix_3smi8abknjmk-0{list-style-type:none}.lst-kix_5xzwww5dv2ym-0>li:before{content:"\0025cf  "}.lst-kix_5xzwww5dv2ym-4>li:before{content:"\0025cb  "}ul.lst-kix_3smi8abknjmk-7{list-style-type:none}.lst-kix_92dmlqc6k7hb-0>li:before{content:"\0025cf  "}ul.lst-kix_3smi8abknjmk-8{list-style-type:none}ul.lst-kix_3smi8abknjmk-5{list-style-type:none}ul.lst-kix_3smi8abknjmk-6{list-style-type:none}ul.lst-kix_3smi8abknjmk-3{list-style-type:none}.lst-kix_92dmlqc6k7hb-2>li:before{content:"\0025a0  "}ul.lst-kix_3smi8abknjmk-4{list-style-type:none}ul.lst-kix_3smi8abknjmk-1{list-style-type:none}.lst-kix_5xzwww5dv2ym-6>li:before{content:"\0025cf  "}ul.lst-kix_3smi8abknjmk-2{list-style-type:none}.lst-kix_se6dyoebk8vx-7>li:before{content:"\0025cb  "}.lst-kix_se6dyoebk8vx-5>li:before{content:"\0025a0  "}ul.lst-kix_95y8eww5g0j6-1{list-style-type:none}ul.lst-kix_95y8eww5g0j6-2{list-style-type:none}ul.lst-kix_95y8eww5g0j6-3{list-style-type:none}ul.lst-kix_95y8eww5g0j6-4{list-style-type:none}ul.lst-kix_95y8eww5g0j6-5{list-style-type:none}ul.lst-kix_5xzwww5dv2ym-1{list-style-type:none}ul.lst-kix_95y8eww5g0j6-6{list-style-type:none}ul.lst-kix_5xzwww5dv2ym-0{list-style-type:none}ul.lst-kix_95y8eww5g0j6-7{list-style-type:none}.lst-kix_5xzwww5dv2ym-2>li:before{content:"\0025a0  "}ul.lst-kix_95y8eww5g0j6-8{list-style-type:none}ul.lst-kix_d5fwfbfxeak-1{list-style-type:none}ul.lst-kix_d5fwfbfxeak-0{list-style-type:none}ul.lst-kix_95y8eww5g0j6-0{list-style-type:none}.lst-kix_i5hfykibw2sv-0>li:before{content:"\0025cf  "}ul.lst-kix_d5fwfbfxeak-8{list-style-type:none}ul.lst-kix_d5fwfbfxeak-7{list-style-type:none}ul.lst-kix_d5fwfbfxeak-6{list-style-type:none}ul.lst-kix_d5fwfbfxeak-5{list-style-type:none}ul.lst-kix_d5fwfbfxeak-4{list-style-type:none}ul.lst-kix_d5fwfbfxeak-3{list-style-type:none}ul.lst-kix_d5fwfbfxeak-2{list-style-type:none}.lst-kix_i5hfykibw2sv-4>li:before{content:"\0025cb  "}.lst-kix_i5hfykibw2sv-2>li:before{content:"\0025a0  "}.lst-kix_i5hfykibw2sv-6>li:before{content:"\0025cf  "}.lst-kix_3smi8abknjmk-7>li:before{content:"\0025cb  "}.lst-kix_5xzwww5dv2ym-8>li:before{content:"\0025a0  "}.lst-kix_3smi8abknjmk-5>li:before{content:"\0025a0  "}ul.lst-kix_i5hfykibw2sv-7{list-style-type:none}ul.lst-kix_i5hfykibw2sv-6{list-style-type:none}ul.lst-kix_i5hfykibw2sv-8{list-style-type:none}.lst-kix_d5fwfbfxeak-5>li:before{content:"\0025a0  "}.lst-kix_865ut2eu98jc-2>li:before{content:"\0025a0  "}.lst-kix_865ut2eu98jc-6>li:before{content:"\0025cf  "}.lst-kix_i5hfykibw2sv-8>li:before{content:"\0025a0  "}ul.lst-kix_i5hfykibw2sv-1{list-style-type:none}ul.lst-kix_i5hfykibw2sv-0{list-style-type:none}ul.lst-kix_i5hfykibw2sv-3{list-style-type:none}ul.lst-kix_i5hfykibw2sv-2{list-style-type:none}.lst-kix_d5fwfbfxeak-3>li:before{content:"\0025cf  "}.lst-kix_865ut2eu98jc-4>li:before{content:"\0025cb  "}ul.lst-kix_i5hfykibw2sv-5{list-style-type:none}ul.lst-kix_i5hfykibw2sv-4{list-style-type:none}.lst-kix_d5fwfbfxeak-7>li:before{content:"\0025cb  "}.lst-kix_865ut2eu98jc-0>li:before{content:"\0025cf  "}.lst-kix_20j26kfo0o7d-0>li:before{content:"\0025cf  "}ul.lst-kix_5xzwww5dv2ym-5{list-style-type:none}ul.lst-kix_5xzwww5dv2ym-4{list-style-type:none}ul.lst-kix_5xzwww5dv2ym-3{list-style-type:none}ul.lst-kix_5xzwww5dv2ym-2{list-style-type:none}.lst-kix_20j26kfo0o7d-2>li:before{content:"\0025a0  "}ul.lst-kix_5xzwww5dv2ym-8{list-style-type:none}ul.lst-kix_5xzwww5dv2ym-7{list-style-type:none}ul.lst-kix_5xzwww5dv2ym-6{list-style-type:none}.lst-kix_20j26kfo0o7d-4>li:before{content:"\0025cb  "}.lst-kix_20j26kfo0o7d-8>li:before{content:"\0025a0  "}.lst-kix_20j26kfo0o7d-6>li:before{content:"\0025cf  "}.lst-kix_865ut2eu98jc-8>li:before{content:"\0025a0  "}ul.lst-kix_92dmlqc6k7hb-3{list-style-type:none}ul.lst-kix_92dmlqc6k7hb-4{list-style-type:none}ul.lst-kix_92dmlqc6k7hb-1{list-style-type:none}ul.lst-kix_92dmlqc6k7hb-2{list-style-type:none}.lst-kix_16q3g1bqf4v8-6>li:before{content:"\0025cf  "}.lst-kix_16q3g1bqf4v8-8>li:before{content:"\0025a0  "}ul.lst-kix_92dmlqc6k7hb-7{list-style-type:none}ul.lst-kix_92dmlqc6k7hb-8{list-style-type:none}ul.lst-kix_92dmlqc6k7hb-5{list-style-type:none}ul.lst-kix_92dmlqc6k7hb-6{list-style-type:none}.lst-kix_16q3g1bqf4v8-5>li:before{content:"\0025a0  "}.lst-kix_16q3g1bqf4v8-7>li:before{content:"\0025cb  "}.lst-kix_qgd4n04a5ypj-1>li:before{content:"\0025cb  "}.lst-kix_qb59ysz26wka-2>li:before{content:"\0025a0  "}.lst-kix_qgd4n04a5ypj-0>li:before{content:"\0025cf  "}.lst-kix_qb59ysz26wka-3>li:before{content:"\0025cf  "}.lst-kix_qgd4n04a5ypj-3>li:before{content:"\0025cf  "}.lst-kix_qb59ysz26wka-5>li:before{content:"\0025a0  "}.lst-kix_qb59ysz26wka-4>li:before{content:"\0025cb  "}.lst-kix_qgd4n04a5ypj-2>li:before{content:"\0025a0  "}.lst-kix_qgd4n04a5ypj-7>li:before{content:"\0025cb  "}.lst-kix_qgd4n04a5ypj-8>li:before{content:"\0025a0  "}.lst-kix_qgd4n04a5ypj-4>li:before{content:"\0025cb  "}.lst-kix_qgd4n04a5ypj-5>li:before{content:"\0025a0  "}.lst-kix_qb59ysz26wka-1>li:before{content:"\0025cb  "}ul.lst-kix_92dmlqc6k7hb-0{list-style-type:none}.lst-kix_qb59ysz26wka-0>li:before{content:"\0025cf  "}.lst-kix_qgd4n04a5ypj-6>li:before{content:"\0025cf  "}ul.lst-kix_p8mtvtxq35w-5{list-style-type:none}.lst-kix_qb59ysz26wka-7>li:before{content:"\0025cb  "}ul.lst-kix_p8mtvtxq35w-4{list-style-type:none}ul.lst-kix_p8mtvtxq35w-3{list-style-type:none}ul.lst-kix_p8mtvtxq35w-2{list-style-type:none}ul.lst-kix_p8mtvtxq35w-8{list-style-type:none}ul.lst-kix_p8mtvtxq35w-7{list-style-type:none}.lst-kix_qb59ysz26wka-6>li:before{content:"\0025cf  "}ul.lst-kix_p8mtvtxq35w-6{list-style-type:none}ul.lst-kix_p8mtvtxq35w-1{list-style-type:none}ul.lst-kix_p8mtvtxq35w-0{list-style-type:none}.lst-kix_qb59ysz26wka-8>li:before{content:"\0025a0  "}ul.lst-kix_qb59ysz26wka-4{list-style-type:none}ul.lst-kix_se6dyoebk8vx-0{list-style-type:none}ul.lst-kix_qb59ysz26wka-3{list-style-type:none}ul.lst-kix_qb59ysz26wka-6{list-style-type:none}ul.lst-kix_se6dyoebk8vx-2{list-style-type:none}ul.lst-kix_qb59ysz26wka-5{list-style-type:none}ul.lst-kix_se6dyoebk8vx-1{list-style-type:none}ul.lst-kix_qb59ysz26wka-8{list-style-type:none}ul.lst-kix_se6dyoebk8vx-4{list-style-type:none}ul.lst-kix_qb59ysz26wka-7{list-style-type:none}ul.lst-kix_se6dyoebk8vx-3{list-style-type:none}ul.lst-kix_se6dyoebk8vx-6{list-style-type:none}ul.lst-kix_se6dyoebk8vx-5{list-style-type:none}ul.lst-kix_se6dyoebk8vx-8{list-style-type:none}ul.lst-kix_se6dyoebk8vx-7{list-style-type:none}.lst-kix_16q3g1bqf4v8-0>li:before{content:"\0025cf  "}.lst-kix_16q3g1bqf4v8-1>li:before{content:"\0025cb  "}.lst-kix_16q3g1bqf4v8-2>li:before{content:"\0025a0  "}.lst-kix_16q3g1bqf4v8-4>li:before{content:"\0025cb  "}.lst-kix_16q3g1bqf4v8-3>li:before{content:"\0025cf  "}.lst-kix_5xzwww5dv2ym-3>li:before{content:"\0025cf  "}.lst-kix_5xzwww5dv2ym-7>li:before{content:"\0025cb  "}.lst-kix_92dmlqc6k7hb-1>li:before{content:"\0025cb  "}.lst-kix_5xzwww5dv2ym-5>li:before{content:"\0025a0  "}.lst-kix_se6dyoebk8vx-8>li:before{content:"\0025a0  "}.lst-kix_5xzwww5dv2ym-1>li:before{content:"\0025cb  "}ul.lst-kix_qb59ysz26wka-0{list-style-type:none}.lst-kix_se6dyoebk8vx-6>li:before{content:"\0025cf  "}ul.lst-kix_qb59ysz26wka-2{list-style-type:none}ul.lst-kix_qb59ysz26wka-1{list-style-type:none}ul.lst-kix_yt5b62vngjmx-6{list-style-type:none}ul.lst-kix_yt5b62vngjmx-5{list-style-type:none}ul.lst-kix_yt5b62vngjmx-4{list-style-type:none}.lst-kix_i5hfykibw2sv-1>li:before{content:"\0025cb  "}ul.lst-kix_yt5b62vngjmx-3{list-style-type:none}ul.lst-kix_yt5b62vngjmx-2{list-style-type:none}ul.lst-kix_yt5b62vngjmx-1{list-style-type:none}ul.lst-kix_yt5b62vngjmx-0{list-style-type:none}ul.lst-kix_qgd4n04a5ypj-0{list-style-type:none}ul.lst-kix_qgd4n04a5ypj-1{list-style-type:none}.lst-kix_i5hfykibw2sv-3>li:before{content:"\0025cf  "}.lst-kix_i5hfykibw2sv-5>li:before{content:"\0025a0  "}ul.lst-kix_qgd4n04a5ypj-4{list-style-type:none}ul.lst-kix_qgd4n04a5ypj-5{list-style-type:none}ul.lst-kix_qgd4n04a5ypj-2{list-style-type:none}ul.lst-kix_yt5b62vngjmx-8{list-style-type:none}ul.lst-kix_qgd4n04a5ypj-3{list-style-type:none}ul.lst-kix_yt5b62vngjmx-7{list-style-type:none}.lst-kix_3smi8abknjmk-6>li:before{content:"\0025cf  "}ul.lst-kix_qgd4n04a5ypj-8{list-style-type:none}ul.lst-kix_qgd4n04a5ypj-6{list-style-type:none}ul.lst-kix_qgd4n04a5ypj-7{list-style-type:none}.lst-kix_3smi8abknjmk-4>li:before{content:"\0025cb  "}.lst-kix_d5fwfbfxeak-8>li:before{content:"\0025a0  "}.lst-kix_865ut2eu98jc-5>li:before{content:"\0025a0  "}.lst-kix_d5fwfbfxeak-6>li:before{content:"\0025cf  "}.lst-kix_865ut2eu98jc-3>li:before{content:"\0025cf  "}.lst-kix_865ut2eu98jc-7>li:before{content:"\0025cb  "}.lst-kix_d5fwfbfxeak-4>li:before{content:"\0025cb  "}ul.lst-kix_kasf0lccdtym-6{list-style-type:none}ul.lst-kix_kasf0lccdtym-7{list-style-type:none}ul.lst-kix_kasf0lccdtym-4{list-style-type:none}.lst-kix_i5hfykibw2sv-7>li:before{content:"\0025cb  "}ul.lst-kix_kasf0lccdtym-5{list-style-type:none}.lst-kix_3smi8abknjmk-8>li:before{content:"\0025a0  "}ul.lst-kix_kasf0lccdtym-2{list-style-type:none}ul.lst-kix_kasf0lccdtym-3{list-style-type:none}ul.lst-kix_kasf0lccdtym-0{list-style-type:none}ul.lst-kix_kasf0lccdtym-1{list-style-type:none}ul.lst-kix_kasf0lccdtym-8{list-style-type:none}.lst-kix_865ut2eu98jc-1>li:before{content:"\0025cb  "}.lst-kix_20j26kfo0o7d-1>li:before{content:"\0025cb  "}ul.lst-kix_20j26kfo0o7d-8{list-style-type:none}.lst-kix_20j26kfo0o7d-3>li:before{content:"\0025cf  "}ul.lst-kix_20j26kfo0o7d-7{list-style-type:none}ul.lst-kix_20j26kfo0o7d-6{list-style-type:none}ul.lst-kix_20j26kfo0o7d-5{list-style-type:none}ul.lst-kix_20j26kfo0o7d-4{list-style-type:none}ul.lst-kix_20j26kfo0o7d-3{list-style-type:none}li.li-bullet-0:before{margin-left:-18pt;white-space:nowrap;display:inline-block;min-width:18pt}ul.lst-kix_20j26kfo0o7d-2{list-style-type:none}ul.lst-kix_20j26kfo0o7d-1{list-style-type:none}ul.lst-kix_20j26kfo0o7d-0{list-style-type:none}.lst-kix_20j26kfo0o7d-7>li:before{content:"\0025cb  "}.lst-kix_20j26kfo0o7d-5>li:before{content:"\0025a0  "}ol{margin:0;padding:0}table td,table th{padding:0}.c5{margin-left:36pt;padding-top:0pt;padding-left:0pt;padding-bottom:0pt;line-height:1.15;orphans:2;widows:2;text-align:left}.c3{margin-left:72pt;padding-top:0pt;padding-left:0pt;padding-bottom:0pt;line-height:1.15;orphans:2;widows:2;text-align:left}.c12{color:#434343;font-weight:400;text-decoration:none;vertical-align:baseline;font-size:14pt;font-family:"Arial";font-style:normal}.c9{color:#000000;font-weight:400;text-decoration:none;vertical-align:baseline;font-size:11pt;font-family:"Arial";font-style:italic}.c10{padding-top:16pt;padding-bottom:4pt;line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}.c8{color:#000000;font-weight:400;text-decoration:none;vertical-align:baseline;font-size:16pt;font-family:"Arial";font-style:normal}.c2{color:#000000;font-weight:400;text-decoration:none;vertical-align:baseline;font-size:11pt;font-family:"Arial";font-style:normal}.c6{padding-top:18pt;padding-bottom:6pt;line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}.c16{color:#000000;text-decoration:none;vertical-align:baseline;font-size:11pt;font-family:"Arial";font-style:normal}.c11{padding-top:0pt;padding-bottom:0pt;line-height:1.15;orphans:2;widows:2;text-align:left}.c0{text-decoration-skip-ink:none;-webkit-text-decoration-skip:none;color:#1155cc;text-decoration:underline}.c15{background-color:#ffffff;max-width:468pt;padding:72pt 72pt 72pt 72pt}.c7{color:inherit;text-decoration:inherit}.c1{padding:0;margin:0}.c4{font-weight:700}.c13{height:11pt}.c14{font-style:italic}.title{padding-top:0pt;color:#000000;font-size:26pt;padding-bottom:3pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}.subtitle{padding-top:0pt;color:#666666;font-size:15pt;padding-bottom:16pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}li{color:#000000;font-size:11pt;font-family:"Arial"}p{margin:0;color:#000000;font-size:11pt;font-family:"Arial"}h1{padding-top:20pt;color:#000000;font-size:20pt;padding-bottom:6pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}h2{padding-top:18pt;color:#000000;font-size:16pt;padding-bottom:6pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}h3{padding-top:16pt;color:#434343;font-size:14pt;padding-bottom:4pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}h4{padding-top:14pt;color:#666666;font-size:12pt;padding-bottom:4pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}h5{padding-top:12pt;color:#666666;font-size:11pt;padding-bottom:4pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}h6{padding-top:12pt;color:#666666;font-size:11pt;padding-bottom:4pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;font-style:italic;orphans:2;widows:2;text-align:left}</style><div class="c15"><h2 class="c6" id="h.7l5idrlvz4by"><span class="c8">Participants</span></h2><p class="c11"><span class="c2">Yoav Weiss, Michal Mocny, Nic Jansma, Steven Bougon, Philippe Le Hegaret, Nicolás Peña, Alex Christensen, Annie Sullivan, Gilles Dubuc, Michelle Vu,</span></p><h2 class="c6" id="h.u6emyj25g50r"><span class="c8">Next Meeting</span></h2><p class="c11"><span class="c2">June 4th @ 10am PST / 1pm EST</span></p><h2 class="c6" id="h.a2turmvd13e2"><span class="c8">CFC for Group Extension</span></h2><ul class="c1 lst-kix_qb59ysz26wka-0 start"><li class="c5 li-bullet-0"><span class="c0"><a class="c7" href="https://www.google.com/url?q=https://lists.w3.org/Archives/Public/public-web-perf/2020May/0002.html&amp;sa=D&amp;source=editors&amp;ust=1613234451215000&amp;usg=AOvVaw3N-yfB_7P17uBOTa0ft8IV">https://lists.w3.org/Archives/Public/public-web-perf/2020May/0002.html</a></span></li><li class="c5 li-bullet-0"><span class="c4">Philippe</span><span class="c2"><b></b>: No feedback on mailing list</span></li><li class="c5 li-bullet-0"><span class="c4">Yoav</span><span class="c2"><b></b>: Haven’t seen any objections</span></li><li class="c5 li-bullet-0"><span>Decision - </span><span class="c4">Extend the charter</span></li></ul><h2 class="c6" id="h.j30yuzjt4ab6"><span class="c8">Issues</span></h2><h3 class="c10" id="h.1aeqagf3xxbr"><span class="c12">ResourceTiming Information Types</span></h3><ul class="c1 lst-kix_yt5b62vngjmx-0 start"><li class="c5 li-bullet-0"><span class="c0"><a class="c7" href="https://www.google.com/url?q=https://docs.google.com/presentation/d/1C9_T72vW137NeG6NmRAKxn6PAWGq1hC5AYexfWL2KRg/edit%23slide%3Did.p&amp;sa=D&amp;source=editors&amp;ust=1613234451216000&amp;usg=AOvVaw0HGuQgqxcLDRIGdfGj0Z0-">Presentation</a></span></li><li class="c5 li-bullet-0"><span class="c4">Yoav</span><span class="c2"><b></b>: We need to better categorize the types of information that ResourceTiming is exposing, and see what different opt-ins fit for which types of information</span></li><li class="c5 li-bullet-0"><span class="c2">... RT historically only exposed timing information (DNS, TCP, TTFB, etc)</span></li><li class="c5 li-bullet-0"><span class="c2">... we have a bunch of feature requests for processing time, and already expose it through Element Timing’s rendering time</span></li><li class="c5 li-bullet-0"><span class="c2">... sensitivity of this information varies</span></li><li class="c5 li-bullet-0"><span class="c2">... DNS, TCP and TLS information doesn't not expose anything user-specific to that origin. &nbsp;It can expose information related to the user's network status, but that can also be gathered elsewhere</span></li><li class="c5 li-bullet-0"><span class="c2">...TTFB, processing time can expose information about that user (how long it takes to generate user-specific data)</span></li><li class="c5 li-bullet-0"><span class="c2">... Sizing information such as encoded-, decoded- and transfer-size exposes information about the user through the content they load</span></li><li class="c5 li-bullet-0"><span class="c2">... i.e. through tranferSize, exposing the credentialed resource size and header size can give information about login state and other sensitive information</span></li><li class="c5 li-bullet-0"><span class="c2">... transferSize also reveals caching information or whether it was re-validated. &nbsp;We have feature requests related to code caching and/or explicitly caching information. &nbsp;This is potentially sensitive today (exposing the user history), but we say this is OK because this can also be reliably exposed in other ways.</span></li><li class="c5 li-bullet-0"><span class="c2">... But in a double-key-cached world, this will no longer be sensitive information, and would potentially not require an opt-in</span></li><li class="c5 li-bullet-0"><span class="c2">... This is my opinion as an editor of ResourceTiming, and I have not yet solicited feedback from Chrome/security folks.</span></li><li class="c5 li-bullet-0"><span class="c4">Philippe</span><span class="c2"><b></b>: What’s double-keyed caching?</span></li><li class="c5 li-bullet-0"><span class="c4">Yoav</span><span class="c2"><b></b>: Keying the resource based on both its URL and the top-level domain that requested it. Shipped in Safari in 2012, Chrome to switch to that soon.</span></li><li class="c5 li-bullet-0"><span class="c2">... Next is protocol information via nextHopProtocol, and some requests for cipher information and Server IP. &nbsp;One of the issues that PING has opened is that it can reveal information about one's network (e.g. proxy settings). &nbsp;We think this could also be detected by characteristics of resource loads (e.g. H1 vs H2 load differences)</span></li><li class="c5 li-bullet-0"><span class="c2">... Some of this information could possibly be handled by ServerTiming instead. &nbsp;If that's not the case, we need to decide if this information is OK to expose, and if so, it doesn't match any of the existing opt-ins (which we'll talk about later)</span></li><li class="c5 li-bullet-0"><span class="c2">... Last we have initiator information, initiatorType, and a proposal for more details about the initiator elements. &nbsp;I don't think this exposes new sensitive information, but we need to make sure of that. We know that we need to make sure we don’t exepose post-redirect URLs.</span></li><li class="c5 li-bullet-0"><span class="c2">... Finally we have requests for Status Code and Content Type, and this is sensitive information as it can reveal details about the user if the content is credentialed.</span></li><li class="c5 li-bullet-0"><span class="c2">... We also have a proposal by Nic about automatic reporting of a frame to its parent about its resources. &nbsp;This might be a separate thing with its own Opt-In.</span></li><li class="c5 li-bullet-0"><span class="c2">.... We have a few opt-ins available: Timing-Allow-Origin, used for opting in timing and size information.</span></li><li class="c5 li-bullet-0"><span class="c2">... Cross-Origin-Resource-Policy - a relatively new opt-in that signifies a resource can be safely embedded by other content, even in a world with Spectre and Meltdown.</span></li><li class="c5 li-bullet-0"><span class="c2">... CORS allows complete sharing of the resource across different origins</span></li><li class="c5 li-bullet-0"><span class="c2">... How do we map the types of information to those opt-ins?</span></li><li class="c5 li-bullet-0"><span class="c2">... Timing-Allow-Origin would expose timing information, and not much else. &nbsp;For developer recommendations it seems that it's perfectly OK to add TAO for public resources, and slightly personalized resources.</span></li><li class="c5 li-bullet-0"><span class="c2">... Cross-Origin-Resource-Policy should be OK to reveal sizing information (similar to measureMemory API). &nbsp;From my perspective it also seems safe to expose timing information in those cases, similar to what TAO does. &nbsp;We could turn this on for public resources for those which may not be CORS fetched.</span></li><li class="c5 li-bullet-0"><span class="c2">... CORS content is fully exposed. &nbsp;Timing, sizing and response information is OK to expose.</span></li><li class="c5 li-bullet-0"><span class="c2">… Thoughts?</span></li><li class="c5 li-bullet-0"><span class="c4">Nic</span><span class="c2"><b></b>: Helpful to scope the different buckets and map them to opt-ins.</span></li><li class="c5 li-bullet-0"><span class="c4">Michal</span><span class="c2"><b></b>: How would conflicting headers affect this?</span></li><li class="c5 li-bullet-0"><span class="c4">Yoav</span><span class="c2"><b></b>: I think CORS either passes or fails, and if it fails, it doesn't apply. &nbsp;Then if TAO is on the resource and it passes, it would apply.</span></li><li class="c5 li-bullet-0"><span class="c2">... Ideally, CORS is a stronger policy than CORP, which is stronger than TAO, so the strongest that passes would apply</span></li><li class="c5 li-bullet-0"><span class="c4">Steven</span><span class="c2"><b></b>: How do we effectively explain this to the community?</span></li><li class="c5 li-bullet-0"><span class="c4">Yoav</span><span class="c2"><b></b>: Agreed that explaining this already is and could be a challenge</span></li><li class="c5 li-bullet-0"><span class="c2">... I'm hoping that the “layered” opt-ins would be easier to explain. CORS is complex, CORP is a bit simpler. There are a bunch of new capabilities bound behind CORP, so that might motivate people to understand CORP beyond performance APIs</span></li><li class="c5 li-bullet-0"><span class="c4">Nic</span><span class="c2"><b></b>: We would need good documentation in the spec itself</span></li><li class="c5 li-bullet-0"><span class="c4">Yoav</span><span class="c2"><b></b>: This could affect the RUM community. &nbsp;In cases where CORS is enabled but not TAO, RUM would be able to get more timing information automatically. &nbsp;But in cases where there’s TAO but not CORS, they'd just get timing information and not size info.</span></li><li class="c5 li-bullet-0"><span class="c4">Steven</span><span class="c2"><b></b>: Would like to see some sort of guide or table which describes what happens in each case or bucket when these headers apply</span></li><li class="c5 li-bullet-0"><span class="c4">Michal</span><span class="c2"><b></b>: Where I'm concerned is that it's not self-documenting based on the header name, where if you just have Timing-Allow-Origin it's not obvious what's missing.</span></li><li class="c5 li-bullet-0"><span class="c2"><b>Yoav</b>: a shame that they’re not self-explanatory. We can use work to define the relationship between CORS and CORP to also include TAO.</span></li><li class="c5 li-bullet-0"><span class="c4">Alex</span><span class="c2"><b></b>: We do agree if you have access to the content bytes, then access to the timing information is less sensitive. &nbsp;We have similar assumptions for WebRTC. We need to help people understand the principle.</span></li><li class="c5 li-bullet-0"><span class="c2">... The only detail about this that I kind of disagree with is that the timing info about the DNS data and how easy it is to measure it outside of this API</span></li><li class="c5 li-bullet-0"><span class="c4">Yoav</span><span><b></b>: The way that I thought about it is there are ways of measuring hosts that are expected to not resolve, to time DNS</span></li><li class="c5 li-bullet-0"><span class="c2">… Will run this proposal by folks and let y’all know how it goes.</span></li></ul><h3 class="c10" id="h.kcxg97iy018t"><span class="c12">ResourceTiming</span></h3><ul class="c1 lst-kix_kasf0lccdtym-0 start"><li class="c5 li-bullet-0"><span class="c0"><a class="c7" href="https://www.google.com/url?q=https://github.com/w3c/resource-timing/issues/222&amp;sa=D&amp;source=editors&amp;ust=1613234451222000&amp;usg=AOvVaw1Zp-pULJmZrlyAcR1w0O43">https://github.com/w3c/resource-timing/issues/222</a></span></li></ul><ul class="c1 lst-kix_kasf0lccdtym-1 start"><li class="c3 li-bullet-0"><span class="c4">Yoav</span><span class="c2"><b></b>: Mostly discussed by the above</span></li></ul><ul class="c1 lst-kix_kasf0lccdtym-0"><li class="c5 li-bullet-0"><span class="c0"><a class="c7" href="https://www.google.com/url?q=https://github.com/w3c/resource-timing/issues/223&amp;sa=D&amp;source=editors&amp;ust=1613234451223000&amp;usg=AOvVaw37ZOQUx3AZ6SKXglcS5TDS">https://github.com/w3c/resource-timing/issues/223</a></span></li></ul><ul class="c1 lst-kix_kasf0lccdtym-1 start"><li class="c3 li-bullet-0"><span class="c4">Yoav</span><span class="c2"><b></b>: Similar issue</span></li></ul><ul class="c1 lst-kix_kasf0lccdtym-0"><li class="c5 li-bullet-0"><span class="c0"><a class="c7" href="https://www.google.com/url?q=https://github.com/w3c/resource-timing/issues/215&amp;sa=D&amp;source=editors&amp;ust=1613234451223000&amp;usg=AOvVaw0zOGsPKUZoKADRgsXI8p-j">https://github.com/w3c/resource-timing/issues/215</a></span></li></ul><ul class="c1 lst-kix_kasf0lccdtym-1 start"><li class="c3 li-bullet-0"><span class="c9">The step to queue a task to run fire a buffer full event should specify its source</span></li><li class="c3 li-bullet-0"><span class="c4">Yoav</span><span><b></b>: Editorial, I will just do that</span></li></ul><h3 class="c10" id="h.nuod399yk4va"><span class="c12">PerformanceTimeline</span></h3><ul class="c1 lst-kix_d5fwfbfxeak-0 start"><li class="c5 li-bullet-0"><span class="c0"><a class="c7" href="https://www.google.com/url?q=https://github.com/w3c/performance-timeline/issues/167&amp;sa=D&amp;source=editors&amp;ust=1613234451224000&amp;usg=AOvVaw3ZihyTSiRoX4TVR1vEECdv">https://github.com/w3c/performance-timeline/issues/167</a></span></li></ul><ul class="c1 lst-kix_d5fwfbfxeak-1 start"><li class="c3 li-bullet-0"><span class="c9">Is the observer buffer of a PerformanceObserver a PerformanceObserverEntryList or a PerformanceEntryList?</span></li><li class="c3 li-bullet-0"><span class="c4">Yoav</span><span class="c2"><b></b>: Editorial, moved to Level 2</span></li></ul><h3 class="c10" id="h.x8qzq7iifoux"><span class="c12">NavigationTiming</span></h3><ul class="c1 lst-kix_qgd4n04a5ypj-0 start"><li class="c5 li-bullet-0"><span class="c0"><a class="c7" href="https://www.google.com/url?q=https://github.com/w3c/navigation-timing/issues/125&amp;sa=D&amp;source=editors&amp;ust=1613234451225000&amp;usg=AOvVaw2oG_mlvBBrEEpGm9MzkK5N">https://github.com/w3c/navigation-timing/issues/125</a></span></li></ul><ul class="c1 lst-kix_qgd4n04a5ypj-1 start"><li class="c3 li-bullet-0"><span class="c9">PerformanceNavigationTiming needs a realm</span></li><li class="c3 li-bullet-0"><span class="c4">Yoav</span><span class="c2"><b></b>: Need realm to create NavigationTiming entry, but navigation may get started before the document exists</span></li><li class="c3 li-bullet-0"><span class="c4">Nicolás</span><span class="c2"><b></b>: Keep variables around until document is created, Editorial</span></li><li class="c3 li-bullet-0"><span class="c4">Yoav</span><span class="c2"><b></b>: Is there any other precedence for objects created before the document?</span></li><li class="c3 li-bullet-0"><span class="c4">Nicolás</span><span class="c2"><b></b>: Not sure</span></li><li class="c3 li-bullet-0"><span class="c4">Alex</span><span class="c2"><b></b>: question. Can we move the entry creation until the navigation has ended?</span></li><li class="c3 li-bullet-0"><span class="c4">Yoav</span><span class="c2"><b></b>: The early creation enables folks to migrate from NavTiming L1 which reported things as they?</span></li></ul><ul class="c1 lst-kix_qgd4n04a5ypj-0"><li class="c5 li-bullet-0"><span class="c0"><a class="c7" href="https://www.google.com/url?q=https://github.com/w3c/navigation-timing/issues/126&amp;sa=D&amp;source=editors&amp;ust=1613234451226000&amp;usg=AOvVaw0ZDihgk6a9p4xo25keKtKG">https://github.com/w3c/navigation-timing/issues/126</a></span></li></ul><ul class="c1 lst-kix_qgd4n04a5ypj-1 start"><li class="c3 li-bullet-0"><span class="c9">Possibility to get the HTTP status code from the Response Header</span></li><li class="c3 li-bullet-0"><span class="c4">Yoav</span><span class="c2"><b></b>: We also have a feature request for this for ResourceTiming</span></li><li class="c3 li-bullet-0"><span class="c4">Yoav</span><span class="c2"><b></b>: Non-actionable for the moment</span></li><li class="c3 li-bullet-0"><span class="c4">Nicolás</span><span class="c2"><b></b>: Why not actionable?</span></li><li class="c3 li-bullet-0"><span class="c4">Yoav</span><span class="c2"><b></b>: We could make it a feature request for L3. NEL may resolve the use cases</span></li><li class="c3 li-bullet-0"><span class="c4">Nic</span><span class="c2"><b></b>: NEL gives you an out-of-band signal, but doesn’t enable you to correlate RUM with it</span></li><li class="c3 li-bullet-0"><span class="c4">Yoav</span><span class="c2"><b></b>: So there’s a case to be able to tell apart your 200s from your 500s?</span></li><li class="c3 li-bullet-0"><span class="c4">Nic</span><span class="c2"><b></b>: Akamai customers are using that, and we’re routing the status codes through the HTML to expose it.</span></li><li class="c3 li-bullet-0"><span class="c2">…: It’s hard to tie NEL with the rest of your data: session ID, etc. RUM is easier.</span></li><li class="c3 li-bullet-0"><span class="c4">Yoav</span><span class="c2"><b></b>: Also, NavigationTiming has no opt-in issues</span></li><li class="c3 li-bullet-0"><span class="c4">Nic</span><span class="c2"><b></b>: AI to add Akamai use-case to Github issue</span></li><li class="c3 li-bullet-0"><span class="c4">Yoav</span><span class="c2"><b></b>: OK, so we can label it as a feature request for L3</span></li></ul><p class="c11 c13"><span class="c2"></span></p><h2 class="c6" id="h.1slv4xudd5tn"><span class="c8">UserTiming</span></h2><ul class="c1 lst-kix_92dmlqc6k7hb-0 start"><li class="c5 li-bullet-0"><span class="c0"><a class="c7" href="https://www.google.com/url?q=https://github.com/w3c/user-timing/issues/69&amp;sa=D&amp;source=editors&amp;ust=1613234451228000&amp;usg=AOvVaw2PiV6SyY7orIOQinsA5cOV">https://github.com/w3c/user-timing/issues/69</a></span></li></ul><ul class="c1 lst-kix_92dmlqc6k7hb-1 start"><li class="c3 li-bullet-0"><span class="c9">Allow performance.measure() to specify optional color parameter, to be used by perf visualizations in devtools</span></li><li class="c3 li-bullet-0"><span class="c4">Yoav</span><span class="c2"><b></b>: Request to send colors along with marks/measures for use in developer tools. Feels overly specific.</span></li><li class="c3 li-bullet-0"><span class="c4">Michal</span><span class="c2"><b></b>: We could look at how the console handles coloring. &nbsp;Maybe could be a part of the details object that's a convention per browser.</span></li><li class="c3 li-bullet-0"><span class="c4">Yoav</span><span class="c2"><b></b>: Agree that it seems like a better way to tackle this. Might be interesting to loop in devtools folks.</span></li><li class="c3 li-bullet-0"><span class="c4">Michal</span><span class="c2"><b></b>: Console API accepts CSS properties, with a whitelisted set of properties they can specify</span></li></ul><ul class="c1 lst-kix_92dmlqc6k7hb-0"><li class="c5 li-bullet-0"><span class="c0"><a class="c7" href="https://www.google.com/url?q=https://github.com/w3c/user-timing/issues/68&amp;sa=D&amp;source=editors&amp;ust=1613234451229000&amp;usg=AOvVaw108hbIC80Lx7XszKNBYOj0">https://github.com/w3c/user-timing/issues/68</a></span></li></ul><ul class="c1 lst-kix_92dmlqc6k7hb-1 start"><li class="c3 li-bullet-0"><span class="c14">Allow marks and measures to be shown in developer tooling without adding it to the performance timeline</span></li><li class="c3 li-bullet-0"><span class="c4">Annie</span><span class="c2"><b></b>: Ideally these would be handled by the developer tooling folks. There was also an issue around UserTiming slowness in Chromium that is also conflated here.</span></li><li class="c3 li-bullet-0"><span class="c4">Nicolás</span><span class="c2"><b></b>: I don’t get how would these entries be created in developer tooling but not remain in memory</span></li><li class="c3 li-bullet-0"><span class="c4">Yoav</span><span class="c2"><b></b>: console calls might not do much when dev tools are closed, but not sure this is true</span></li><li class="c3 li-bullet-0"><span class="c4">Nicolás</span><span class="c2"><b></b>: Feels like they want a "debug mode" for their profiling which could be something they handle instead of building it into UserTiming</span></li><li class="c3 li-bullet-0"><span class="c4">Annie</span><span class="c2"><b></b>: They get that today by turning marks and measures on and the off.</span></li><li class="c3 li-bullet-0"><span class="c4">Yoav</span><span><b></b>: This might be better handled in user-land. I’ll loop in the devtools folks.</span></li></ul></div></div><div id="footer"><span>Published by <a target="_blank" title="Learn more about Google Drive" href="https://docs.google.com/">Google Drive</a></span><span class="dash">–</span><a href="https://docs.google.com/u/0/abuse?id=AKkXjow9zDSmzQofcI5lyeFmYigRl5561vVJqDNiiyRR0kgcUPLZnTu4IGepra3PTSWJcZsL0TJTtEBNOg-P6lE:0">Report Abuse</a></div><script type="text/javascript" nonce="">(function(){/*

 Copyright The Closure Library Authors.
 SPDX-License-Identifier: Apache-2.0
*/
var aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(a==Array.prototype||a==Object.prototype)return a;a[b]=c.value;return a};function ba(a){a=["object"==typeof globalThis&&globalThis,a,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var b=0;b<a.length;++b){var c=a[b];if(c&&c.Math==Math)return c}throw Error("Cannot find global object");}var ca=ba(this);
function da(a,b){if(b)a:{var c=ca;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];if(!(e in c))break a;c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&aa(c,a,{configurable:!0,writable:!0,value:b})}}var ea="function"==typeof Object.create?Object.create:function(a){function b(){}b.prototype=a;return new b},fa;
if("function"==typeof Object.setPrototypeOf)fa=Object.setPrototypeOf;else{var ha;a:{var ia={a:!0},ja={};try{ja.__proto__=ia;ha=ja.a;break a}catch(a){}ha=!1}fa=ha?function(a,b){a.__proto__=b;if(a.__proto__!==b)throw new TypeError(a+" is not extensible");return a}:null}var ka=fa;
function h(a,b){a.prototype=ea(b.prototype);a.prototype.constructor=a;if(ka)ka(a,b);else for(var c in b)if("prototype"!=c)if(Object.defineProperties){var d=Object.getOwnPropertyDescriptor(b,c);d&&Object.defineProperty(a,c,d)}else a[c]=b[c];a.o=b.prototype}da("Object.is",function(a){return a?a:function(b,c){return b===c?0!==b||1/b===1/c:b!==b&&c!==c}});var l=this||self;function la(){}function ma(a){var b=typeof a;return"object"==b&&null!=a||"function"==b}
function na(a,b){var c=Array.prototype.slice.call(arguments,1);return function(){var d=c.slice();d.push.apply(d,arguments);return a.apply(this,d)}}function oa(a,b){function c(){}c.prototype=b.prototype;a.o=b.prototype;a.prototype=new c;a.prototype.constructor=a;a.B=function(d,e,f){for(var g=Array(arguments.length-2),k=2;k<arguments.length;k++)g[k-2]=arguments[k];return b.prototype[e].apply(d,g)}}function pa(a){return a};var qa=Array.prototype.indexOf?function(a,b){return Array.prototype.indexOf.call(a,b,void 0)}:function(a,b){if("string"===typeof a)return"string"!==typeof b||1!=b.length?-1:a.indexOf(b,0);for(var c=0;c<a.length;c++)if(c in a&&a[c]===b)return c;return-1};function ra(a,b,c){for(var d in a)b.call(c,a[d],d,a)};var m;function p(a,b){this.i=a===sa&&b||"";this.j=ta}p.prototype.h=!0;p.prototype.g=function(){return this.i};var ta={},sa={};var ua=String.prototype.trim?function(a){return a.trim()}:function(a){return/^[\s\xa0]*([\s\S]*?)[\s\xa0]*$/.exec(a)[1]},va=/&/g,wa=/</g,xa=/>/g,ya=/"/g,za=/'/g,Aa=/\x00/g,Ba=/[\x00&<>"']/;function Ca(a,b){return a<b?-1:a>b?1:0};function q(a,b){this.i=b===r?a:""}q.prototype.h=!0;q.prototype.g=function(){return this.i.toString()};q.prototype.toString=function(){return this.i.toString()};function u(a){return a instanceof q&&a.constructor===q?a.i:"type_error:SafeUrl"}
var Da=/^(?:audio\/(?:3gpp2|3gpp|aac|L16|midi|mp3|mp4|mpeg|oga|ogg|opus|x-m4a|x-matroska|x-wav|wav|webm)|font\/\w+|image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp|x-icon)|video\/(?:mpeg|mp4|ogg|webm|quicktime|x-matroska))(?:;\w+=(?:\w+|"[\w;,= ]+"))*$/i,Ea=/^data:(.*);base64,[a-z0-9+\/]+=*$/i,Fa=/^(?:(?:https?|mailto|ftp):|[^:/?#]*(?:[/?#]|$))/i;function Ga(a){if(a instanceof q)return a;a="object"==typeof a&&a.h?a.g():String(a);Fa.test(a)||(a="about:invalid#zClosurez");return new q(a,r)}
var r={},Ha=new q("about:invalid#zClosurez",r);var v;a:{var Ia=l.navigator;if(Ia){var Ja=Ia.userAgent;if(Ja){v=Ja;break a}}v=""}function w(a){return-1!=v.indexOf(a)};function x(a,b,c){this.i=c===Ka?a:""}x.prototype.h=!0;x.prototype.g=function(){return this.i.toString()};x.prototype.toString=function(){return this.i.toString()};var Ka={};function La(a,b,c,d){a=a instanceof q?a:Ga(a);b=b||l;c=c instanceof p?c instanceof p&&c.constructor===p&&c.j===ta?c.i:"type_error:Const":c||"";return void 0!==d?b.open(u(a),c,d,void 0):b.open(u(a),c)};function Ma(a){Ma[" "](a);return a}Ma[" "]=la;function y(a,b,c){return Object.prototype.hasOwnProperty.call(a,b)?a[b]:a[b]=c(b)};var Na=w("Opera"),z=w("Trident")||w("MSIE"),Oa=w("Edge"),Pa=Oa||z,Qa=w("Gecko")&&!(-1!=v.toLowerCase().indexOf("webkit")&&!w("Edge"))&&!(w("Trident")||w("MSIE"))&&!w("Edge"),Ra=-1!=v.toLowerCase().indexOf("webkit")&&!w("Edge"),Sa=w("Macintosh");function Ta(){var a=l.document;return a?a.documentMode:void 0}var Ua;
a:{var Va="",Wa=function(){var a=v;if(Qa)return/rv:([^\);]+)(\)|;)/.exec(a);if(Oa)return/Edge\/([\d\.]+)/.exec(a);if(z)return/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a);if(Ra)return/WebKit\/(\S+)/.exec(a);if(Na)return/(?:Version)[ \/]?(\S+)/.exec(a)}();Wa&&(Va=Wa?Wa[1]:"");if(z){var Xa=Ta();if(null!=Xa&&Xa>parseFloat(Va)){Ua=String(Xa);break a}}Ua=Va}var Ya=Ua,Za={},$a;if(l.document&&z){var ab=Ta();$a=ab?ab:parseInt(Ya,10)||void 0}else $a=void 0;var bb=$a;function cb(a){return y(a.prototype,"$$generatedClassName",function(){return"Class$obf_"+{valueOf:function(){return++db}}})}var db=1E3;function A(){}A.prototype.u=function(){return this.j||(Object.defineProperties(this,{j:{value:++eb,enumerable:!1}}),this.j)};A.prototype.toString=function(){var a=B(fb(gb(this.constructor)))+"@";var b=(this.u()>>>0).toString(16);return a+B(b)};function D(){}h(D,A);D.prototype.i=function(a){this.h=a;if(a instanceof Object)try{a.A=this}catch(b){}};function hb(a){a.h instanceof Error&&(Error.captureStackTrace?Error.captureStackTrace(a.h):a.h.stack=Error().stack)}D.prototype.toString=function(){var a=fb(gb(this.constructor)),b=this.l;return null==b?a:B(a)+": "+B(b)};function ib(){}h(ib,D);function jb(){}h(jb,ib);var eb=0;function E(){}h(E,jb);E.prototype.i=function(a){jb.prototype.i.call(this,Object.is(this.g,"__noinit__")?a:this.g)};function kb(){}h(kb,E);function lb(a,b){return"string"==typeof a?a.charCodeAt(b):a.g(b)};function B(a){return null==a?"null":a.toString()}function mb(a){return 65536<=a?B(String.fromCharCode((55296+((a-65536|0)>>10&1023)|0)&65535))+B(String.fromCharCode((56320+((a-65536|0)&1023)|0)&65535)):String.fromCharCode(a&65535)}function nb(a,b){var c=b,d=a.length,e;b=lb(a,(e=c,c=c+1|0,e));var f;if(e=55296<=b&&56319>=b&&c<d)a=f=lb(a,c),e=56320<=a&&57343>=a;var g;e?g=65536+((b&1023)<<10)+(f&1023)|0:g=b;return g};function ob(a,b){this.h=a;this.g=b}h(ob,A);function fb(a){var b=cb(a.h);0!=a.g&&(b="L"+B(b)+";");a=a.g;for(var c="",d=0;d<a;d=d+1|0)c=B(c)+"[";return B(c)+B(b)}ob.prototype.toString=function(){return"class "+B(fb(this))};function gb(a){var b=0;return y(a.prototype,"$$class/"+b,function(){return new ob(a,b)})};function pb(a,b){return null==a?a:b?decodeURI(a):decodeURIComponent(a)};var qb=/^(?:([^:/?#.]+):)?(?:\/\/(?:([^/?#]*)@)?([^/#?]*?)(?::([0-9]+))?(?=[/#?]|$))?([^?#]+)?(?:\?([^#]*))?(?:#([\S\s]*))?$/;function rb(a){a=qb.exec(a);for(var b=[],c=0;7>=c;c=c+1|0)a.length<=c||null==a[c]?b.push(null):b.push(a[c]);return b}
function sb(a,b){var c=a.indexOf(mb(35));c=0>c?a.length:c;a:{var d=0;for(var e=b.length;0<(d=a.indexOf(b,d))&&d<c;){var f=nb(a,d-1|0);if(38==f||63==f){if((d+e|0)>=a.length)break a;f=nb(a,d+e|0);if(61==f||38==f||35==f)break a}d=d+(e+1)|0}d=-1}if(0>d)return null;e=a.indexOf(mb(38),d);if(0>e||e>c)e=c;d=d+(b.length+1)|0;b=Math.min(a.length,d);a=a.substr(b,Math.min(a.length,Math.max(d,e))-b|0);c=" ";for(b=0;0<=(b=c.indexOf("\\",b));)36==c.charCodeAt(b+1|0)?(d=B(c.substr(0,b|0))+"$",e=b=b+1|0,c=d+B(c.substr(e))):
(d=B(c.substr(0,b|0)),e=b=b+1|0,c=d+B(c.substr(e)));a=a.replace(/\+/g,c);return pb(a,!1)};function F(a,b){this.h=b;for(var c=[],d=!0,e=a.length-1;0<=e;e--){var f=a[e]|0;d&&f==b||(c[e]=f,d=!1)}this.g=c}var tb={};function ub(a){return-128<=a&&128>a?y(tb,a,function(b){return new F([b|0],0>b?-1:0)}):new F([a|0],0>a?-1:0)}function G(a){if(isNaN(a)||!isFinite(a))return H;if(0>a)return I(G(-a));for(var b=[],c=1,d=0;a>=c;d++)b[d]=a/c|0,c*=4294967296;return new F(b,0)}var H=ub(0),J=ub(1),vb=ub(16777216);
function K(a){if(-1==a.h)return-K(I(a));for(var b=0,c=1,d=0;d<a.g.length;d++){var e=L(a,d);b+=(0<=e?e:4294967296+e)*c;c*=4294967296}return b}F.prototype.toString=function(a){a=a||10;if(2>a||36<a)throw Error("radix out of range: "+a);if(M(this))return"0";if(-1==this.h)return"-"+I(this).toString(a);for(var b=G(Math.pow(a,6)),c=this,d="";;){var e=wb(c,b).g;c=N(c,O(e,b));var f=((0<c.g.length?c.g[0]:c.h)>>>0).toString(a);c=e;if(M(c))return f+d;for(;6>f.length;)f="0"+f;d=f+d}};
function L(a,b){return 0>b?0:b<a.g.length?a.g[b]:a.h}function M(a){if(0!=a.h)return!1;for(var b=0;b<a.g.length;b++)if(0!=a.g[b])return!1;return!0}function P(a,b){a=N(a,b);return-1==a.h?-1:M(a)?0:1}function I(a){for(var b=a.g.length,c=[],d=0;d<b;d++)c[d]=~a.g[d];return(new F(c,~a.h)).add(J)}F.prototype.abs=function(){return-1==this.h?I(this):this};
F.prototype.add=function(a){for(var b=Math.max(this.g.length,a.g.length),c=[],d=0,e=0;e<=b;e++){var f=d+(L(this,e)&65535)+(L(a,e)&65535),g=(f>>>16)+(L(this,e)>>>16)+(L(a,e)>>>16);d=g>>>16;f&=65535;g&=65535;c[e]=g<<16|f}return new F(c,c[c.length-1]&-2147483648?-1:0)};function N(a,b){return a.add(I(b))}
function O(a,b){if(M(a)||M(b))return H;if(-1==a.h)return-1==b.h?O(I(a),I(b)):I(O(I(a),b));if(-1==b.h)return I(O(a,I(b)));if(0>P(a,vb)&&0>P(b,vb))return G(K(a)*K(b));for(var c=a.g.length+b.g.length,d=[],e=0;e<2*c;e++)d[e]=0;for(e=0;e<a.g.length;e++)for(var f=0;f<b.g.length;f++){var g=L(a,e)>>>16,k=L(a,e)&65535,t=L(b,f)>>>16,n=L(b,f)&65535;d[2*e+2*f]+=k*n;Q(d,2*e+2*f);d[2*e+2*f+1]+=g*n;Q(d,2*e+2*f+1);d[2*e+2*f+1]+=k*t;Q(d,2*e+2*f+1);d[2*e+2*f+2]+=g*t;Q(d,2*e+2*f+2)}for(e=0;e<c;e++)d[e]=d[2*e+1]<<16|
d[2*e];for(e=c;e<2*c;e++)d[e]=0;return new F(d,0)}function Q(a,b){for(;(a[b]&65535)!=a[b];)a[b+1]+=a[b]>>>16,a[b]&=65535,b++}function S(a,b){this.g=a;this.h=b}
function wb(a,b){if(M(b))throw Error("division by zero");if(M(a))return new S(H,H);if(-1==a.h)return b=wb(I(a),b),new S(I(b.g),I(b.h));if(-1==b.h)return b=wb(a,I(b)),new S(I(b.g),b.h);if(30<a.g.length){if(-1==a.h||-1==b.h)throw Error("slowDivide_ only works with positive integers.");for(var c=J,d=b;0>=P(d,a);)c=xb(c,1),d=xb(d,1);var e=T(c,1),f=T(d,1);d=T(d,2);for(c=T(c,2);!M(d);){var g=f.add(d);0>=P(g,a)&&(e=e.add(c),f=g);d=T(d,1);c=T(c,1)}b=N(a,O(e,b));return new S(e,b)}for(e=H;0<=P(a,b);){c=Math.max(1,
Math.floor(K(a)/K(b)));d=Math.ceil(Math.log(c)/Math.LN2);d=48>=d?1:Math.pow(2,d-48);f=G(c);for(g=O(f,b);-1==g.h||0<P(g,a);)c-=d,f=G(c),g=O(f,b);M(f)&&(f=J);e=e.add(f);a=N(a,g)}return new S(e,a)}F.prototype.and=function(a){for(var b=Math.max(this.g.length,a.g.length),c=[],d=0;d<b;d++)c[d]=L(this,d)&L(a,d);return new F(c,this.h&a.h)};F.prototype.or=function(a){for(var b=Math.max(this.g.length,a.g.length),c=[],d=0;d<b;d++)c[d]=L(this,d)|L(a,d);return new F(c,this.h|a.h)};
F.prototype.xor=function(a){for(var b=Math.max(this.g.length,a.g.length),c=[],d=0;d<b;d++)c[d]=L(this,d)^L(a,d);return new F(c,this.h^a.h)};function xb(a,b){var c=b>>5;b%=32;for(var d=a.g.length+c+(0<b?1:0),e=[],f=0;f<d;f++)e[f]=0<b?L(a,f-c)<<b|L(a,f-c-1)>>>32-b:L(a,f-c);return new F(e,a.h)}function T(a,b){var c=b>>5;b%=32;for(var d=a.g.length-c,e=[],f=0;f<d;f++)e[f]=0<b?L(a,f+c)>>>b|L(a,f+c+1)<<32-b:L(a,f+c);return new F(e,a.h)};N(xb(J,32),J);N(xb(J,128),J);function yb(a){a&&"function"==typeof a.v&&a.v()};function U(){this.h=this.h;this.g=this.g}U.prototype.h=!1;U.prototype.v=function(){this.h||(this.h=!0,this.j())};U.prototype.j=function(){if(this.g)for(;this.g.length;)this.g.shift()()};var zb=!z||9<=Number(bb),Ab=!z||9<=Number(bb),Bb=z&&!y(Za,"9",function(){for(var a=0,b=ua(String(Ya)).split("."),c=ua("9").split("."),d=Math.max(b.length,c.length),e=0;0==a&&e<d;e++){var f=b[e]||"",g=c[e]||"";do{f=/(\d*)(\D*)(.*)/.exec(f)||["","","",""];g=/(\d*)(\D*)(.*)/.exec(g)||["","","",""];if(0==f[0].length&&0==g[0].length)break;a=Ca(0==f[1].length?0:parseInt(f[1],10),0==g[1].length?0:parseInt(g[1],10))||Ca(0==f[2].length,0==g[2].length)||Ca(f[2],g[2]);f=f[3];g=g[3]}while(0==a)}return 0<=a}),
Cb=function(){if(!l.addEventListener||!Object.defineProperty)return!1;var a=!1,b=Object.defineProperty({},"passive",{get:function(){a=!0}});try{l.addEventListener("test",la,b),l.removeEventListener("test",la,b)}catch(c){}return a}();function Db(a,b){this.type=a;this.g=this.target=b;this.defaultPrevented=!1}Db.prototype.h=function(){this.defaultPrevented=!0};function V(a,b){Db.call(this,a?a.type:"");this.relatedTarget=this.g=this.target=null;this.button=this.screenY=this.screenX=this.clientY=this.clientX=0;this.key="";this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1;this.state=null;this.pointerId=0;this.pointerType="";this.i=null;if(a){var c=this.type=a.type,d=a.changedTouches&&a.changedTouches.length?a.changedTouches[0]:null;this.target=a.target||a.srcElement;this.g=b;if(b=a.relatedTarget){if(Qa){a:{try{Ma(b.nodeName);var e=!0;break a}catch(f){}e=
!1}e||(b=null)}}else"mouseover"==c?b=a.fromElement:"mouseout"==c&&(b=a.toElement);this.relatedTarget=b;d?(this.clientX=void 0!==d.clientX?d.clientX:d.pageX,this.clientY=void 0!==d.clientY?d.clientY:d.pageY,this.screenX=d.screenX||0,this.screenY=d.screenY||0):(this.clientX=void 0!==a.clientX?a.clientX:a.pageX,this.clientY=void 0!==a.clientY?a.clientY:a.pageY,this.screenX=a.screenX||0,this.screenY=a.screenY||0);this.button=a.button;this.key=a.key||"";this.ctrlKey=a.ctrlKey;this.altKey=a.altKey;this.shiftKey=
a.shiftKey;this.metaKey=a.metaKey;this.pointerId=a.pointerId||0;this.pointerType="string"===typeof a.pointerType?a.pointerType:Eb[a.pointerType]||"";this.state=a.state;this.i=a;a.defaultPrevented&&V.o.h.call(this)}}oa(V,Db);var Fb=[1,4,2],Eb={2:"touch",3:"pen",4:"mouse"};V.prototype.h=function(){V.o.h.call(this);var a=this.i;if(a.preventDefault)a.preventDefault();else if(a.returnValue=!1,Bb)try{if(a.ctrlKey||112<=a.keyCode&&123>=a.keyCode)a.keyCode=-1}catch(b){}};var Gb="closure_listenable_"+(1E6*Math.random()|0);var Hb=0;function Ib(a,b,c,d,e){this.listener=a;this.g=null;this.src=b;this.type=c;this.capture=!!d;this.h=e;this.key=++Hb;this.m=this.s=!1}function Jb(a){a.m=!0;a.listener=null;a.g=null;a.src=null;a.h=null};function Kb(a){this.src=a;this.g={};this.h=0}Kb.prototype.add=function(a,b,c,d,e){var f=a.toString();a=this.g[f];a||(a=this.g[f]=[],this.h++);var g;a:{for(g=0;g<a.length;++g){var k=a[g];if(!k.m&&k.listener==b&&k.capture==!!d&&k.h==e)break a}g=-1}-1<g?(b=a[g],c||(b.s=!1)):(b=new Ib(b,this.src,f,!!d,e),b.s=c,a.push(b));return b};function Lb(a,b){var c=b.type;if(c in a.g){var d=a.g[c],e=qa(d,b),f;(f=0<=e)&&Array.prototype.splice.call(d,e,1);f&&(Jb(b),0==a.g[c].length&&(delete a.g[c],a.h--))}};var Mb="closure_lm_"+(1E6*Math.random()|0),Nb={},Ob=0;function Pb(a,b,c,d,e){if(d&&d.once)return Qb(a,b,c,d,e);if(Array.isArray(b)){for(var f=0;f<b.length;f++)Pb(a,b[f],c,d,e);return null}c=Rb(c);return a&&a[Gb]?a.g.add(String(b),c,!1,ma(d)?!!d.capture:!!d,e):Sb(a,b,c,!1,d,e)}
function Sb(a,b,c,d,e,f){if(!b)throw Error("Invalid event type");var g=ma(e)?!!e.capture:!!e,k=Tb(a);k||(a[Mb]=k=new Kb(a));c=k.add(b,c,d,g,f);if(c.g)return c;d=Ub();c.g=d;d.src=a;d.listener=c;if(a.addEventListener)Cb||(e=g),void 0===e&&(e=!1),a.addEventListener(b.toString(),d,e);else if(a.attachEvent)a.attachEvent(Vb(b.toString()),d);else if(a.addListener&&a.removeListener)a.addListener(d);else throw Error("addEventListener and attachEvent are unavailable.");Ob++;return c}
function Ub(){var a=Wb,b=Ab?function(c){return a.call(b.src,b.listener,c)}:function(c){c=a.call(b.src,b.listener,c);if(!c)return c};return b}function Qb(a,b,c,d,e){if(Array.isArray(b)){for(var f=0;f<b.length;f++)Qb(a,b[f],c,d,e);return null}c=Rb(c);return a&&a[Gb]?a.g.add(String(b),c,!0,ma(d)?!!d.capture:!!d,e):Sb(a,b,c,!0,d,e)}
function Xb(a){if("number"!==typeof a&&a&&!a.m){var b=a.src;if(b&&b[Gb])Lb(b.g,a);else{var c=a.type,d=a.g;b.removeEventListener?b.removeEventListener(c,d,a.capture):b.detachEvent?b.detachEvent(Vb(c),d):b.addListener&&b.removeListener&&b.removeListener(d);Ob--;(c=Tb(b))?(Lb(c,a),0==c.h&&(c.src=null,b[Mb]=null)):Jb(a)}}}function Vb(a){return a in Nb?Nb[a]:Nb[a]="on"+a}
function Yb(a,b,c,d){var e=!0;if(a=Tb(a))if(b=a.g[b.toString()])for(b=b.concat(),a=0;a<b.length;a++){var f=b[a];f&&f.capture==c&&!f.m&&(f=Zb(f,d),e=e&&!1!==f)}return e}function Zb(a,b){var c=a.listener,d=a.h||a.src;a.s&&Xb(a);return c.call(d,b)}
function Wb(a,b){if(a.m)return!0;if(!Ab){if(!b)a:{b=["window","event"];for(var c=l,d=0;d<b.length;d++)if(c=c[b[d]],null==c){b=null;break a}b=c}d=b;b=new V(d,this);c=!0;if(!(0>d.keyCode||void 0!=d.returnValue)){a:{var e=!1;if(0==d.keyCode)try{d.keyCode=-1;break a}catch(g){e=!0}if(e||void 0==d.returnValue)d.returnValue=!0}d=[];for(e=b.g;e;e=e.parentNode)d.push(e);a=a.type;for(e=d.length-1;0<=e;e--){b.g=d[e];var f=Yb(d[e],a,!0,b);c=c&&f}for(e=0;e<d.length;e++)b.g=d[e],f=Yb(d[e],a,!1,b),c=c&&f}return c}return Zb(a,
new V(b,this))}function Tb(a){a=a[Mb];return a instanceof Kb?a:null}var $b="__closure_events_fn_"+(1E9*Math.random()>>>0);function Rb(a){if("function"===typeof a)return a;a[$b]||(a[$b]=function(b){return a.handleEvent(b)});return a[$b]};function W(a){U.call(this);this.l=a;this.i={}}oa(W,U);var ac=[];function bc(a){ra(a.i,function(b,c){this.i.hasOwnProperty(c)&&Xb(b)},a);a.i={}}W.prototype.j=function(){W.o.j.call(this);bc(this)};W.prototype.handleEvent=function(){throw Error("EventHandler.handleEvent not implemented");};function cc(a){U.call(this);this.i=a||document.body;this.l=new W(this);a=na(yb,this.l);this.h?a():(this.g||(this.g=[]),this.g.push(a));a=this.l;var b=this.i,c=this.u,d="click";Array.isArray(d)||(d&&(ac[0]=d.toString()),d=ac);for(var e=0;e<d.length;e++){var f=Pb(b,d[e],c||a.handleEvent,!1,a.l||a);if(!f)break;a.i[f.key]=f}}h(cc,U);
cc.prototype.u=function(a){if(!(!(zb?0==a.i.button:"click"==a.type||a.i.button&Fb[0])||Sa&&a.ctrlKey||a.defaultPrevented))for(var b=a.target;b&&b!=this.i;){if(b.tagName&&"a"==b.tagName.toLowerCase()){var c=b.getAttribute("href")||b.getAttributeNS("http://www.w3.org/1999/xlink","href"),d=c;try{var e=rb(c)[3];var f;if(f="www.google.com"===pb(e,!0)){var g=rb(c)[5];f="/url"===pb(g,!0)}if(f){var k=sb(c,"q");d=k?k:sb(c,"url")}}catch(C){a:{var t=C;if(null!=t){var n=t.A;if(null!=n){C=n;break a}}if(t instanceof
TypeError){var R=n=new kb;R.l=B(t);hb(R);n.g="__noinit__";n.g=t;n.i(new TypeError(n));t=n}else R=n=new E,R.l=B(t),hb(R),n.g="__noinit__",n.g=t,n.i(Error(n)),t=n;C=t}if(!(C instanceof ib))throw C.h;}d=null!=d?d:"";if(c!=d){e=void 0;b={target:"_blank",noreferrer:!0};c=window;d instanceof q?f=d:(f="undefined"!=typeof d.href?d.href:String(d),f instanceof q||(f="object"==typeof f&&f.h?f.g():String(f),Fa.test(f)?f=new q(f,r):(f=String(f),f=f.replace(/(%0A|%0D)/g,""),f=(g=f.match(Ea))&&Da.test(g[1])?new q(f,
r):null)),f=f||Ha);d=b.target||d.target;g=[];for(e in b)switch(e){case "width":case "height":case "top":case "left":g.push(e+"="+b[e]);break;case "target":case "noopener":case "noreferrer":break;default:g.push(e+"="+(b[e]?1:0))}e=g.join(",");if((w("iPhone")&&!w("iPod")&&!w("iPad")||w("iPad")||w("iPod"))&&c.navigator&&c.navigator.standalone&&d&&"_self"!=d)e="A",g=document,e=String(e),"application/xhtml+xml"===g.contentType&&(e=e.toLowerCase()),g=e=g.createElement(e),f=f instanceof q?f:Ga(f),g.href=
u(f),e.setAttribute("target",d),b.noreferrer&&e.setAttribute("rel","noreferrer"),b=document.createEvent("MouseEvent"),b.initMouseEvent("click",!0,!0,c,1),e.dispatchEvent(b);else if(b.noreferrer){if(c=La("",c,d,e),b=u(f),c){Pa&&-1!=b.indexOf(";")&&(b="'"+b.replace(/'/g,"%27")+"'");c.opener=null;Ba.test(b)&&(-1!=b.indexOf("&")&&(b=b.replace(va,"&amp;")),-1!=b.indexOf("<")&&(b=b.replace(wa,"&lt;")),-1!=b.indexOf(">")&&(b=b.replace(xa,"&gt;")),-1!=b.indexOf('"')&&(b=b.replace(ya,"&quot;")),-1!=b.indexOf("'")&&
(b=b.replace(za,"&#39;")),-1!=b.indexOf("\x00")&&(b=b.replace(Aa,"&#0;")));b='<meta name="referrer" content="no-referrer"><meta http-equiv="refresh" content="0; url='+b+'">';if(void 0===m)if(d=null,(e=l.trustedTypes)&&e.createPolicy){try{d=e.createPolicy("goog#html",{createHTML:pa,createScript:pa,createScriptURL:pa})}catch(C){l.console&&l.console.error(C.message)}m=d}else m=d;b=(d=m)?d.createHTML(b):b;b=new x(b,null,Ka);(c=c.document)&&c.write&&(c.write(b instanceof x&&b.constructor===x?b.i:"type_error:SafeHtml"),
c.close())}}else(c=La(f,c,d,e))&&b.noopener&&(c.opener=null);a.h();break}}b=b.parentNode}};function dc(a){new cc(a)}var X=["DOCS_installLinkReferrerSanitizer"],Y=l;X[0]in Y||"undefined"==typeof Y.execScript||Y.execScript("var "+X[0]);for(var Z;X.length&&(Z=X.shift());)X.length||void 0===dc?Y[Z]&&Y[Z]!==Object.prototype[Z]?Y=Y[Z]:Y=Y[Z]={}:Y[Z]=dc;}).call(this);
</script><script type="text/javascript" nonce="">DOCS_installLinkReferrerSanitizer();</script></body></html>